package mlz.g_anno;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/*
注解的应用场景
 */
public class AnnoDemo03 {
    @MyTest5
    public void test01(){
        System.out.println("====test1====");
    }

    @MyTest5
    public void test02(){
        System.out.println("====test2====");
    }

    public void test03(){
        System.out.println("====test3====");
    }

    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
        AnnoDemo03 ad = new AnnoDemo03();

        //1.获取字节码对象
        Class<AnnoDemo03> c = AnnoDemo03.class;

        //2.解析AnnoDemo03类中的所有方法对象
        Method[] methods = c.getDeclaredMethods();
        for(Method method : methods){
            //3.判断方法上是否有MyTest5注解,如果有就执行方法
            if (method.isAnnotationPresent(MyTest5.class)){
                //执行方法
                method.invoke(ad);
            }
        }
    }
}
